# Dockerfile

# 使用官方 LTS 版本 Node.js 镜像作为基础
# 明确指定版本号和小版本号，确保基础环境一致
# Node.js 镜像指定完整版本号（18.20.1）和 Alpine 版本（3.19）
FROM node:18.20.1-alpine3.19

# 设置容器内工作目录
WORKDIR /app

# 先单独复制包管理文件
# 利用 Docker 分层缓存机制，避免每次代码变动都重新安装依赖
COPY package.json package-lock.json* ./

# 安装生产依赖（推荐使用 ci 命令保持与 lockfile 严格一致）
# --omit=dev 仅安装生产依赖，如需开发工具可改为 npm ci
RUN npm ci --omit=dev

# 复制项目文件（通过 .dockerignore 过滤不需要的文件）
COPY . .

# 暴露应用端口（与项目实际使用端口保持一致）
EXPOSE 3000

# 设置容器启动命令（根据项目实际情况修改）
CMD ["npm", "start"]
